'\" t
.TH "SYSTEMD\-SOCKET\-ACTIVATE" "1" "" "systemd 231" "systemd-socket-activate"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
systemd-socket-activate \- 测试基于套接字启动的守护进程
.SH "SYNOPSIS"
.HP \w'\fBsystemd\-socket\-activate\fR\ 'u
\fBsystemd\-socket\-activate\fR [OPTIONS...] \fIdaemon\fR [OPTIONS...]
.SH "描述"
.PP
\fBsystemd\-socket\-activate\fR
用于测试启动基于套接字启动的服务进程。 还可用于针对单个连接启动单独的服务进程实例。
.PP
可以通过
\fIdaemon\fR
之后的
[OPTIONS...]
给要启动的服务进程传递命令行选项。
.PP
如果使用了
\fB\-\-inetd\fR
选项，那么 socket 文件描述符将被用作被调用进程的标准输入与标准输出。 否则，将继承现有的标准输入与标准输出，而 socket 将被作为3号或更高的文件描述符。 通过
\fI$LISTEN_FDS\fR
传递给
\fBsystemd\-socket\-activate\fR
的 socket 将会被直接传递给被调用的进程， 通过
\fB\-\-listen=\fR
指定的其他 socket 将会使用连续描述符(consecutive descriptor)。
\fBsystemd\-socket\-activate\fR
默认在流式套接字(stream socket)上监听， 但是可以使用
\fB\-\-datagram\fR
选项改为在数据报套接字(datagram socket)上监听， 或者使用
\fB\-\-seqpacket\fR
选项改为在顺序包套接字(sequential packet socket)上监听。
.SH "选项"
.PP
\fB\-l \fR\fB\fIaddress\fR\fR, \fB\-\-listen=\fR\fB\fIaddress\fR\fR
.RS 4
在指定的
\fIaddress\fR
上监听。 接受一个类似
"2000"(端口) 或
"127\&.0\&.0\&.1:2001"(地址:端口) 这样的字符串。
.RE
.PP
\fB\-a\fR, \fB\-\-accept\fR
.RS 4
为每个连接启动一个服务进程实例，并传递连接套接字。
.RE
.PP
\fB\-d\fR, \fB\-\-datagram\fR
.RS 4
在数据报套接字(\fBSOCK_DGRAM\fR)上监听，而不是默认的流式套接字(\fBSOCK_STREAM\fR)。 不能与
\fB\-\-seqpacket\fR
同时使用。
.RE
.PP
\fB\-\-seqpacket\fR
.RS 4
在顺序包套接字(\fBSOCK_SEQPACKET\fR)上监听，而不是默认的流式套接字(\fBSOCK_STREAM\fR)。 不能与
\fB\-\-datagram\fR
同时使用。
.RE
.PP
\fB\-\-inetd\fR
.RS 4
使用 inetd 协议传递文件描述符，也就是作为标准输入与标准输出， 而不是新式的使用
\fI$LISTEN_FDS\fR
变量来传递文件描述符。
.RE
.PP
\fB\-E \fR\fB\fIVAR\fR\fR\fB[=\fIVALUE\fR]\fR, \fB\-\-setenv=\fR\fB\fIVAR\fR\fR\fB[=\fIVALUE\fR]\fR
.RS 4
向被调用的进程传递环境变量。 如果在
\fIVAR\fR
后面 紧跟着
"="
符号， 那么会将其视为"变量=值"的结构。 否则表示将
\fBsystemd\-socket\-activate\fR
所拥有的同名变量传递过去。
.RE
.PP
\fB\-\-fdname=\fR\fINAME\fR[:\fINAME\fR\&.\&.\&.]
.RS 4
指定要传递的文件描述符名称。 这等价于在单元文件中设置
\fIFileDescriptorName=\fR
并且启用
\fBsd_listen_fds_with_names\fR(3)
。 可以多次使用此选项以指定多个描述符，也可以在同一个选项中使用冒号分隔多个描述符。 如果给出的名字多于文件描述符的个数，那么多出的名字将会被忽略。 如果给出的名字少于文件描述符的个数，那么多出的文件描述符将被视为未命名的。
.RE
.PP
\fB\-h\fR, \fB\-\-help\fR
.RS 4
显示简短的帮助信息并退出。
.RE
.PP
\fB\-\-version\fR
.RS 4
显示简短的版本信息并退出。
.RE
.SH "环境变量"
.PP
\fI$LISTEN_FDS\fR, \fI$LISTEN_PID\fR, \fI$LISTEN_FDNAMES\fR
.RS 4
参见
\fBsd_listen_fds\fR(3)
手册。
.RE
.PP
\fI$SYSTEMD_LOG_TARGET\fR, \fI$SYSTEMD_LOG_LEVEL\fR, \fI$SYSTEMD_LOG_COLOR\fR, \fI$SYSTEMD_LOG_LOCATION\fR
.RS 4
与
\fBsystemd\fR(1)
中的含义相同。
.RE
.SH "例子"
.PP
\fBExample\ \&1.\ \&在 2000 端口上运行一个回显服务。\fR
.sp
.if n \{\
.RS 4
.\}
.nf
$ systemd\-socket\-activate \-l 2000 \-\-inetd \-a cat
.fi
.if n \{\
.RE
.\}
.PP
\fBExample\ \&2.\ \&运行一个基于套接字启动的 systemd-journal-gatewayd(8) 实例\fR
.sp
.if n \{\
.RS 4
.\}
.nf
$ systemd\-socket\-activate \-l 19531 /usr/lib/systemd/systemd\-journal\-gatewayd
.fi
.if n \{\
.RE
.\}
.SH "参见"
.PP
\fBsystemd\fR(1),
\fBsystemd.socket\fR(5),
\fBsystemd.service\fR(5),
\fBsd_listen_fds\fR(3),
\fBsd_listen_fds_with_names\fR(3),
\fBcat\fR(1)
.\" manpages-zh translator: 金步国
.\" manpages-zh comment: 金步国作品集：http://www.jinbuguo.com
